'''
1、JMeter录制脚本：
                ① 为什么使用：有API文档时，可以根据API文档的定义来编写http接口测试脚本
                            没有API文档时，可以使用抓包，或者使用JMeter录制脚本
                ② 概念：在没有接口文档的旧项目中，快速录制web页面产生的http接口请求，帮助接口测试脚本
                        录制时，JMeter作为代理服务器来拦截和转发请求与响应数据
                ③ 操作：
                      11、添加http代理服务器，并进行配置
                              测试计划 - 线程组
                                     - 右键（添加非测试元件） - http代理服务器（端口：8889  目标控制器：测试计划>线程组
                                     端口
                                     requests filtering： 录制脚本时的过滤条件（包含、排除-url匹配正则表达式）
                                                                  包含（.*127.0.0.1.*）
                                                                  排除（.*.css   .*.js   .*.jpg  .*.jpeg  .*.png  .*.gif）
                                     目标控制器：           录制的http请求保存的位置
                      12、开启windows操作系统的浏览器代理
                              搜索（代理服务器设置） - 手动设置代理（打开使用代理服务器）、地址（127.0.0.1）、端口号（8889）
                                                   请勿对以下条目（服务器在本机时，建议输入；<-loopback>）、请勿将代理服务器（抓取本机网络报文时，不勾选）、保存
                      13、启动代理服务器，开始录制
                              http代理服务器 - State（启动）- ok -出现Recorder：Transactions Control，表示成功）
                      14、在浏览器页面中进行操作，成功后，就能在JMeter中看到抓取的接口请求
2、JMeter直连数据库   *****重点：
       ① 使用场景：
                 11、用作请求的参数化： 登录时需要的用户名，可以从数据库中查询获取
                 12、用作结果的断言：   添加购物车下单，检查接口返回的订单号是否与数据库中生成的订单号一致
                 13、清理垃圾数据：    添加商品（商品号/编号等不能重复），再执行该脚本不能成功，需要在下次执行前删除该商品数据
                 14、准备测试数据：    通过数据库来准备大量（十几万条）的性能测试数据
       ② 关键配置：
                 11、添加MySQL驱动jar包
                        方法一：测试计划面板，点击"浏览"按钮，将JDBC驱动添加进来
                        方法二：将MySQL驱动jar包放在lib/ext目录下，重启JMeter
                 12、配置数据库连接信息：
                        测试计划 - 线程组 - 右键（添加配置元件）- JDBC Connection Configuration
                              variable name：         mysql数据库连接池名称（JDBC请求时要引用）
                              database url：          jdbc : mysql ://localhost:3306/tpshop2.0
                                       组成：        协议 + 数据库ip + 数据库端口 + 连接的数据库名称
                              JDBC driver class:     com.mysql.jdbc.Driver（mysql驱动包位置固定格式-下拉框选择）
                              username：             root（连接数据库用户名）
                              password:              mysql数据库密码
                 13、添加JDBC请求：
                        测试计划 - 线程组 - 右键（添加JDBC request）
                              variable name：  mysql数据库连接池名称（需要与JDBC connection configuration 的 variable name bound pool 保持一致）
                              query type：     查询操作，选择 select statement
                                               增删改，选择 update statement
                              query：          填写的sql语句，末尾不要加"；"
                              variable names:  保存sql语句返回结果的变量名
       ③ 案例1：连接tpshop商城数据库获取商品名包含：小米手机5的商品id（查出id为65）
               在tpshop首页搜索商品名“小米手机5”，请求 URL：http//127.0.0.1/Home/Goods/search.html，请求方法：GET，请求参数：q=小米手机5
               在搜索的响应数据中检查是否有该商品对应的商品链接：/Home/Goods/goodsInfo/id/65.html
                  11、启动小皮（apache、MySQl）
                  12、mysql的jar包：
                          下载：https://dev.mysql.com/downloads/
                          解压缩并复制粘贴到：F:\apache-jmeter-5.3\lib\ext目录下
                  13、测试计划 - 线程组 - 右键 - 配置元件 - JDBC connection configuration
                                                                variable name:  tpshop_mysql
                                                                database url:   jdbc:mysql://127.0.0.1:3306/tpshop2.0
                                                                JDBC driver class:     com.mysql.jdbc.Driver
                                                                username：       root
                                                                password:       123456
                                                    - JDBC request
                                                                variable name:  tpshop_mysql
                                                                query type：    select statement
                                                                query:          SELECT goods_id FROM tp_goods where goods_name like "%小米手机5%"
                                                                variable names:  good_id
                                                    - http请求
                                                             IP：  127.0.0.1
                                                             方法：GET
                                                             路径：/Home/Goods/search.html
                                                             参数：q=小米手机5
                                                         - 响应断言
                                                                 测试字段：测试文本
                                                                 模式匹配：Substring
                                                                 测试模式：/Home/Goods/goodsInfo/id/${good_id_1}.html
'''